package org.finesys.system.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.finesys.common.mp.core.mapper.BaseMapper;
import org.finesys.system.api.dto.SysUserDTO;
import org.finesys.system.api.entity.SysUser;
import org.finesys.system.api.vo.UserVO;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

@Mapper
public interface SysUserMapper extends BaseMapper<SysUser> {


    /**
     * 分页查询用户信息（含角色）
     *
     * @param page       分页
     * @param sysUserDTO 查询参数
     * @return list
     */
    IPage<UserVO> getUserVOPage(Page<SysUserDTO> page, @Param("query") SysUserDTO sysUserDTO);

    /**
     * 分页查询用户信息（含角色）
     *
     * @param sysUserDTO 查询参数
     * @return list
     */
    List<UserVO> getUserVOList(@Param("query") SysUserDTO sysUserDTO);

    /**
     * 通过ID查询用户信息
     *
     * @param id 用户ID
     * @return userVo
     */
    UserVO getUserVoById(Long id);
}
